package LDA;

import java.util.Hashtable;
import java.util.Random;
import java.util.Vector;

public class LDA_tools 
{
	private static int ampiezza_LDA = 100;
	private int num_amb;
	private Hashtable<Integer,String> maschera; 
	private Database db;
	
	public LDA_tools(){
		db = new Database("ospedale","soriano","49b-tets");		
		if ( !db.connetti() ) {
		   System.out.println("Errore durante la connessione.");
		   System.out.println( db.getErrore() );
		   System.exit(0);
		}
		//calcola il totale degli ambulatori di tutte le UO
		Vector v = db.eseguiQuery("SELECT SUM(Ambulatori) FROM ospedale.uo;");
		
		int i = 0;
		String tot_amb;
		String[] record = (String[]) v.elementAt(i);
		tot_amb = record[0];
		num_amb = Integer.parseInt(tot_amb);
		System.out.println(num_amb);
		
		//Legge il numero di ambulatori per ogni UO e riempie la maschera
		v = db.eseguiQuery("Select Nome, Ambulatori from ospedale.uo;");
		i = 0;
		maschera = new Hashtable<Integer,String>();
		int index=0;
		while ( i<v.size() ) {
		   record = (String[]) v.elementAt(i);
		   for(int n_amb=0; n_amb<Integer.parseInt(record[1]); n_amb++){
			   maschera.put(index,record[0]);
			   index++;
		   }
		   i++;
		}
	}
	
	public int getTotAmbulatori(){
		return num_amb;
	}
	
	public void creaLDA(){
		Random rnd = new Random();
		int tmp;
		String nomeamb;
		for (int temp=0; temp<ampiezza_LDA; temp++){
			tmp = rnd.nextInt(num_amb);
			nomeamb = maschera.get(tmp);
			db.eseguiAggiornamento("INSERT INTO `ospedale`.`lda` (`UnitaOperativa`) VALUES ('"+nomeamb+"');");
		}
	}
	
	public void disconnetti(){
		db.disconnetti();
	}
}
